| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- import { _decorator, Component, EventKeyboard, EventTouch, input, Input, KeyCode, Node, UITransform, Vec3 } from 'cc';
- const { ccclass, property } = _decorator;
- @ccclass('MoveWithTouch')
- // @executeInEditMode
- export class MoveWithTouch extends Component {
- private _isFocused = false;
- private _fcheck: (target: Node) => boolean;
- protected onLoad(): void {
- // console.log(this.node.name + ' onLoad');
- let uiTransform = this.node.getComponent(UITransform);
- if (!uiTransform) {
- // uiTransform = this.node.addComponent(UITransform);
- // uiTransform.setContentSize(100, 100);
- } else {
- // if (uiTransform.width < 100 && uiTransform.height < 100) {
- // uiTransform.setContentSize(100, 100);
- // console.log(this.node.name + 'UITransform组件宽高均小于100,设置为100');
- // }
- }
- }
- protected onEnable(): void {
- this.node.on(Input.EventType.TOUCH_START, this.onTouchStart, this);
- this.node.on(Input.EventType.TOUCH_MOVE, this.onTouchMove, this);
- this.node.on(Input.EventType.TOUCH_END, this.onTouchEnd, this);
- this.node.on(Input.EventType.TOUCH_CANCEL, this.onTouchEnd, this);
- // input.on(Input.EventType.KEY_DOWN, (event: EventKeyboard) => {
- // // console.log('keyCode', event.keyCode);
- // if (event.keyCode === KeyCode.KEY_D) {
- // let b = false;
- // if (this._fcheck) {
- // b = this._fcheck(this.node);
- // }
- // if (b && this._isFocused && this.isValid) {
- // this.node.destroy();
- // }
- // }
- // });
- }
- protected onDisable(): void {
- this.node.off(Input.EventType.TOUCH_START, this.onTouchStart, this);
- this.node.off(Input.EventType.TOUCH_MOVE, this.onTouchMove, this);
- this.node.off(Input.EventType.TOUCH_END, this.onTouchEnd, this);
- this.node.off(Input.EventType.TOUCH_CANCEL, this.onTouchEnd, this);
- }
- update(deltaTime: number) {}
- onTouchStart(event: EventTouch) {
- this._isFocused = true;
- }
- onTouchMove(event: EventTouch) {
- // const touchPos = event.getUILocation();
- // const prePos = event.getPreviousLocation();
- let delta = event.getUIDelta();
- let now = event.target.getPosition();
- event.target.setPosition(now.add(new Vec3(delta.x, delta.y, 0)));
- }
- onTouchEnd(event: any) {
- this._isFocused = false;
- }
- setCheck(check: (target: Node) => boolean) {
- this._fcheck = check;
- }
- }
|